package com.amumu.drama.common.modules.category.service;

import com.amumu.drama.common.base.api.CommonPage;
import com.amumu.drama.common.base.api.CommonResult;
import com.amumu.drama.common.modules.category.dto.GameDto;
import com.amumu.drama.common.modules.category.dto.GameQueryDto;
import com.amumu.drama.common.modules.category.vo.GamePortalVo;
import com.amumu.drama.common.modules.category.vo.GameVo;
import com.amumu.drama.model.PmsProductCategory;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;


/**
 * @date 2024/04/02
 * @author xcj
 */
public interface GameService extends IService<PmsProductCategory> {

    /**
     * 添加或者修改游戏
     * @param anchorDto
     * @return
     */
    CommonResult<String> addOrUpdateGame(GameDto anchorDto);

    /**
     * 删除游戏OD
     * @param gameId
     * @return
     */
    CommonResult<String> deleteGame(Long gameId);

    /**
     * 修改排序
     * @param gameId
     * @param sort
     * @return
     */
    CommonResult<String> editSort(Long gameId,Integer sort);


    /**
     * 根据执行策略批量操作
     * @param gameIds
     * @param performOperations
     * @param executionStrategy 0:显示或者不显示 1：推荐或者不推荐
     * @return
     */
    CommonResult<String> batchWithexecutionStrategy(List<Long> gameIds, Integer performOperations,Integer executionStrategy);


    /**
     * 分页查询商品
     */
    CommonPage<GameVo> pageGameList(GameQueryDto gameQueryDto);

    /**
     * 获取游戏详情
     * @param gameId
     * @return
     */
    CommonResult<GameVo> getGameInfo(Long gameId);

    /**
     * 获取游戏详情及其所有关联的sku
     * @param gameId
     * @return
     */
    CommonResult<GamePortalVo> getGameAndSkuInfo(Long gameId);

}
